package br.edu.unifei.cct720.trabalho07.gui.painel;

import java.awt.Color;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;

import br.edu.unifei.cct720.trabalho07.model.ponto.Ponto;

/**
 * Classe responsavel por implementar um painel
 * que apresenta as formas geometricas da aplicacao
 * 
 * @author fknappe
 *
 */
public class PainelCurva extends JPanel  {

	// Declaracao das variaveis de instacia
	private List<Ponto> pontos;

	/**
	 * Construtor
	 */
	public PainelCurva(String title){
		super();
		this.setBackground(Color.WHITE);
		this.setBorder(BorderFactory.createTitledBorder(null, title, TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION));
		pontos = new ArrayList<Ponto>();
	}

	/**
	 * Metodo responsavel por plotar os pixels das 
	 * formas geometricas no painel
	 * 
	 * @return void
	 */
	public void paint(Graphics g) {        
		super.paint(g);	 
		if (pontos != null) {
			for(Ponto ponto : pontos) {
				ponto.plota(g);
			}	
		}
	}

	// Metodos getters e setters
	public List<Ponto> getPontos() {
		return pontos;
	}

	public void setPontos(List<Ponto> pontos) {
		this.pontos = pontos;
	}

	public void addPonto(Ponto ponto) {
		this.pontos.add(ponto);
	}
}
